--- a/source3/librpc/rpc/rpc_common.c
+++ b/source3/librpc/rpc/rpc_common.c
@@ -95,9 +95,11 @@ static bool initialize_interfaces(void)
 	if (!smb_register_ndr_interface(&ndr_table_lsarpc)) {
 		return false;
 	}
+#ifdef ACTIVE_DIRECTORY
 	if (!smb_register_ndr_interface(&ndr_table_dssetup)) {
 		return false;
 	}
+#endif
 	if (!smb_register_ndr_interface(&ndr_table_samr)) {
 		return false;
 	}
@@ -141,9 +143,11 @@ static bool initialize_interfaces(void)
 	if (!smb_register_ndr_interface(&ndr_table_epmapper)) {
 		return false;
 	}
+#ifdef ACTIVE_DIRECTORY
 	if (!smb_register_ndr_interface(&ndr_table_drsuapi)) {
 		return false;
 	}
+#endif
 	return true;
 }
 
--- a/source3/rpc_server/rpc_ep_setup.c
+++ b/source3/rpc_server/rpc_ep_setup.c
@@ -918,6 +918,7 @@ static bool netdfs_init_cb(void *ptr)
 	return true;
 }
 
+#ifdef ACTIVE_DIRECTORY
 static bool dssetup_init_cb(void *ptr)
 {
 	struct dcesrv_ep_context *ep_ctx =
@@ -966,6 +967,7 @@ static bool dssetup_init_cb(void *ptr)
 
 	return true;
 }
+#endif
 
 static bool wkssvc_init_cb(void *ptr)
 {
@@ -1172,12 +1174,14 @@ bool dcesrv_ep_setup(struct tevent_conte
 	}
 #endif
 
+#ifdef ACTIVE_DIRECTORY
 	dssetup_cb.init         = dssetup_init_cb;
 	dssetup_cb.shutdown     = NULL;
 	dssetup_cb.private_data = ep_ctx;
 	if (!NT_STATUS_IS_OK(rpc_dssetup_init(&dssetup_cb))) {
 		return false;
 	}
+#endif
 
 	wkssvc_cb.init         = wkssvc_init_cb;
 	wkssvc_cb.shutdown     = NULL;
--- a/source3/smbd/server_exit.c
+++ b/source3/smbd/server_exit.c
@@ -132,7 +132,9 @@ static void exit_server_common(enum serv
 
 	if (am_parent) {
 		rpc_wkssvc_shutdown();
+#ifdef ACTIVE_DIRECTORY
 		rpc_dssetup_shutdown();
+#endif
 #ifdef DEVELOPER
 		rpc_rpcecho_shutdown();
 #endif
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -3391,12 +3391,14 @@ NTSTATUS cli_rpc_pipe_open_noauth_transp
 	status = rpc_pipe_bind(result, auth);
 	if (!NT_STATUS_IS_OK(status)) {
 		int lvl = 0;
+#ifdef ACTIVE_DIRECTORY
 		if (ndr_syntax_id_equal(interface,
 					&ndr_table_dssetup.syntax_id)) {
 			/* non AD domains just don't have this pipe, avoid
 			 * level 0 statement in that case - gd */
 			lvl = 3;
 		}
+#endif
 		DEBUG(lvl, ("cli_rpc_pipe_open_noauth: rpc_pipe_bind for pipe "
 			    "%s failed with error %s\n",
 			    get_pipe_name_from_syntax(talloc_tos(), interface),
